
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

using namespace std;

int main(int argc, char const *argv[])
{
    stringstream ss;

    cout << "请输入内容（输入end结束）：" << endl;

    auto coutRdbuf = cout.rdbuf(ss.rdbuf()); // 将 cout 的 buff 指向 ss 的 buff

    coutRdbuf->sputn("你好世界\n", 14); // 直接向 buff 写入数据

    cout << "Hello, World!" << endl;

    cout.rdbuf(coutRdbuf); // 恢复 cout 的 buff 指向
    cout << "ss:" << ss.str() << endl;
    cout << "输入结束，内容如下：" << endl;
    cout << ss.str() << endl;

    ostream mout(cout.rdbuf()); // 将 mout 的 buff 指向 cout 的 buff
    mout << "用我自己的输出对象输出内容到控制台" << endl;

    return 0;
}
